// 引入http配置
import Request from '@/utils/libs/luch-request/index.js'
import {
	getToken
} from '@/utils/auth.js'
const http = new Request()
const baseUrl = 'http://192.168.0.189:3000'

// 初始化请求配置
http.setConfig((config) => {
	config.baseURL = baseUrl
	config.timeout = 60000
	config.header = {
		...config.header
		// a: 1, // 演示
		// b: 2 // 演示
	}
	config.custom = {
		auth: true, // 是否传token
		loading: false, // 是否使用loading
	}
	return config
})
//请求拦截
http.interceptors.request.use((config) => { // 可使用async await 做异步操作
	// console.log('require config', config);
	if (config.custom.auth) {
		// if (!getToken()) { // 如果token不存在，return Promise.reject(config) 会取消本次请求
		//   return Promise.reject(config)
		// }
		config.header.token = getToken()
	}
	if (config.custom.loading) {
		uni.showLoading({
			title: 'loading...'
		})
	}
	return config
}, (error) => Promise.reject(error)) // 可使用async await 做异步操作


//响应拦截
http.interceptors.response.use((response) => {
	/* 对响应成功做点什么 可使用async await 做异步操作*/
	// console.log('response', response);
	const data = response.data

	if (data.code !== 20000) { // 服务端返回的状态码不等于200，则reject()
		uni.showToast({
			title: error.message || 'Error',
			icon: 'error',
			mask: true
		})
		return Promise.reject(response)
	}
	return data.data || {}
}, (error) => { //
	// console.log('error',error);
	uni.showToast({
		title: error.message || 'Error',
		icon: 'error',
		mask: true
	})

	/*  对响应错误做点什么 （statusCode !== 200）*/
	return Promise.reject(error)
})

export {
	http,
	baseUrl
}
